package com.shujia.wyh.day09;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*
    需求：遍历集合，如果遇到了"java"，就添加一个元素"flink"
    针对这个需求而言，如果想用迭代实现，必须使用List特有的迭代器

    我们正常去编写程序运行后报错：ConcurrentModificationException  并发修改异常

    解决方案：迭代器遍历迭代器修改，集合遍历集合修改


 */
public class ListDemo4 {
    public static void main(String[] args) {
        //1、创建集合对象
        List list = new ArrayList();

        //2、创建元素向集合中添加
        list.add("hello");
        list.add("world");
        list.add("hadoop");
        list.add("java");
        list.add("hive");

//        Iterator iterator = list.iterator();
//        while (iterator.hasNext()){
//            String s = (String) iterator.next();
//            if("java".equals(s)){
//                list.add("flink");
//            }
//        }
//        ListIterator listIterator = list.listIterator();
//        while (listIterator.hasNext()){
//            String s = (String) listIterator.next();
//            if("java".equals(s)){
//                //使用迭代器本身做添加
//                listIterator.add("flink");  //由于游标的原因，在查找到的元素后面添加
//            }
//        }

        //使用集合实现
        for(int i=0;i<list.size();i++){
            String s = (String)list.get(i);
            if("java".equals(s)){
                list.add("flink"); //在末尾处添加
            }
        }

        System.out.println(list);
    }
}
